package store

import (
	"context"
	"simcard/model"
	"simcard/model/entity"
)

type ISimCardRechargeRecord interface {
	// Create
	Create(ctx context.Context, e *entity.SimCardRechargeRecord) (int64, error)
	// CreateInBatch
	CreateInBatch(ctx context.Context, m []*entity.SimCardRechargeRecord, size int) error
	// Find
	Find(ctx context.Context, in *model.SimCardRechargeRecordInfoRequest) (*entity.SimCardRechargeRecord, error)
	// Update
	Update(ctx context.Context, id int64, updates map[string]interface{}) error
	// Delete
	Delete(ctx context.Context, id int64) error
	// List
	List(ctx context.Context, in *model.SimCardRechargeRecordListRequest, opts ...model.QueryOptions) (int, []*entity.SimCardRechargeRecord, error)
	// ExecTransaction
	ExecTransaction(ctx context.Context, callback func(ctx context.Context) error) error
}
